<?php

App::uses('AppController', 'Controller');
App::uses('CakeEmail', 'Network/Email');

/**
 * Insumos Controller
 *
 * @property Insumo $Insumo
 */
class InsumosController extends AppController
{

    public $uses = array(
        'Insumo',
        'Categoria',
        'Lugare',
        'Movimiento',
        'Unidade',
        'Medida',
        'InsumosProducto');
    public $layout = 'imprenta';
    public $helpers = array('Html', 'Form', 'Session', 'Js');
    //public $components = array('Fechasconvert');

    public function beforeFilter()
    {
        parent::beforeFilter();
        $this->Auth->allow('*'); // We can remove this line after we�re finished
    }

    public function index()
    {
        $insumos = $this->Insumo->find('all', array('recursive' => 0));
        $this->set(compact('insumos'));

    }

    public function insertar()
    {
        if (!empty($this->request->data))
        {
            
            $fecha=explode('/',$this->data['Insumo']['fecha_vencimiento']);
        $this->request->data['Insumo']['fecha_vencimiento'] =$fecha[2].'-'.$fecha[1].'-'.$fecha[0];
            $this->Insumo->create();
            if ($this->Insumo->save($this->data))
            {
                $a = 1;
            }
            if ($a)
            {

                $pesototal = $this->request->data['Insumo']['cantidadtotal'];
                $lugar = $this->request->data['Insumo']['lugare_id'];

                $idInsumo = $this->Insumo->getLastInsertID();
                $this->request->data = '';

                $this->request->data['Movimiento']['lugare_id'] = $lugar;
                $this->request->data['Movimiento']['insumo_id'] = $idInsumo;
                $this->request->data['Movimiento']['ingreso'] = 0;
                $this->request->data['Movimiento']['salida'] = 0;
                $this->request->data['Movimiento']['totalp'] = 0;
                $this->request->data['Movimiento']['total'] = 0;
                $this->request->data['Movimiento']['pesoneto'] = $pesototal;
                $this->request->data['Movimiento']['pesototal'] = $pesototal;
                $this->request->data['Movimiento']['pesoparcial'] = 0;
                $this->request->data['Movimiento']['user_id'] = $this->Session->read('Auth.User.id');

                if ($this->Movimiento->save($this->request->data))
                {
                    $this->Session->setFlash('Insumo registrado con exito!', 'alerts/bueno');
                    $this->redirect(array('action' => 'index'));
                } else
                {
                    $this->Session->setFlash('No se pudo registrar el Insumo');
                    $this->redirect(array('action' => 'index'));
                }
            } else
            {
                $this->Session->setFlash('No se pudo registrar el Insumo');
                $this->redirect(array('action' => 'index'));
            }
        }
        $dcc = $this->Categoria->find('all', array(
            'recursive' => -1,
            'fields' => array('id', 'nombre'),
            'conditions' => array('estado' => 1)));

        $dcl = $this->Lugare->find('all', array(
            'recursive' => -1,
            'fields' => array('id', 'nombre'),
            'conditions' => array('estado' => 1)));
        $unidades = $this->Unidade->find('all', array(
            'recursive' => -1
                ));
        $medidas = $this->Medida->find('all', array(
            'recursive' => -1
                ));
        $this->set(compact('dcc', 'dcl', 'unidades', 'medidas'));
        //debug($dct);
        $unidades2 = $this->Unidade->find('list',array('fields'=>'Unidade.nombre'));
        $this->set(compact('unidades2'));
        $medidas2 = $this->Medida->find('list',array('fields'=>'Medida.nombre'));
        $this->set(compact('medidas2'));
        $cate = $this->Categoria->find('list',array('fields'=>'Categoria.nombre'));
        $this->set(compact('cate'));
        $lug = $this->Lugare->find('list',array('fields'=>'Lugare.nombre'));
        $this->set(compact('lug'));
    }

    public function modificar($id = null)
    {
        $this->Insumo->id = $id;

        if (!$id)
        {
            $this->Session->setFlash('No existe el id para modificacion!', 'alerts/alert');
            $this->redirect(array('action' => 'index'));
        }
        if (!empty($this->request->data))
        {
             $fecha=explode('/',$this->data['Insumo']['fecha_vencimiento']);
        $this->request->data['Insumo']['fecha_vencimiento'] =$fecha[2].'-'.$fecha[1].'-'.$fecha[0];
            if ($this->Insumo->save($this->data))
            {
                $this->Session->setFlash('Insumo registrado con exito!', 'alerts/bueno');
                $this->redirect(array('action' => 'index'));
            } else
            {
                $this->Session->setFlash('No se pudo registrar el Insumo');
                $this->redirect(array('action' => 'index'));
            }
        } else
        {
            $this->request->data = $this->Insumo->read();
        }
        $dcc = $this->Categoria->find('all', array(
            'recursive' => -1,
            'fields' => array('id', 'nombre'),
            'conditions' => array('estado' => 1)));

        $dcl = $this->Lugare->find('all', array(
            'recursive' => -1,
            'fields' => array('id', 'nombre'),
            'conditions' => array('estado' => 1)));
        $unidades = $this->Unidade->find('all', array(
            'recursive' => -1
                ));
        $medidas = $this->Medida->find('all', array(
            'recursive' => -1
                ));
        $this->set(compact('dcc', 'dcl', 'unidades', 'medidas'));
        //debug($dct);
        $unidades2 = $this->Unidade->find('list',array('fields'=>'Unidade.nombre'));
        $this->set(compact('unidades2'));
        $medidas2 = $this->Medida->find('list',array('fields'=>'Medida.nombre'));
        $this->set(compact('medidas2'));
        $cate = $this->Categoria->find('list',array('fields'=>'Categoria.nombre'));
        $this->set(compact('cate'));
        $lug = $this->Lugare->find('list',array('fields'=>'Lugare.nombre'));
        $this->set(compact('lug'));
    }

    public function ajaxver($idInsumo = null)
    {
        $this->layout = 'ajax';
        $insumo = $this->Insumo->find('first', array('conditions' => array('Insumo.id' => $idInsumo)));

        $movimientos = $this->Movimiento->find('all', array(
            'recursive' => -1,
            'fields' => array('MAX(id) as cod'),
            'conditions' => array('Movimiento.insumo_id' => $idInsumo),
            'group' => array('Movimiento.lugare_id')
                ));

        $ids = array();
        $c = 0;
        foreach ($movimientos as $movimiento)
        {
            $ids[$c] = $movimiento['0']['cod'];
            $c++;
        }
        $cantidades = $this->Movimiento->find('all', array(
            'recursive' => 2,
            'fields' => array(
                'Insumo.nombre',
                'Lugare.nombre',
                'Movimiento.totalp',
                'Movimiento.total',
                'Movimiento.pesoneto',
                'Movimiento.pesototal',
                'Movimiento.pesoparcial'),
            'conditions' => array('Movimiento.id' => $ids)
                ));
        $this->set(compact('cantidades', 'insumo'));
    }

    function eliminar($id = null)
    {
        $this->Insumo->id = $id;

        $this->request->data = $this->Insumo->read();

        if (!$id)
        {
            $this->Session->setFlash('No existe el Producto a eliminar');
            $this->redirect(array('action' => 'index'));
        } else
        {
            
            if ($this->Insumo->delete($id))
            {
                $this->Session->setFlash('Se elimino el Insumo ');
                $this->redirect(array('action' => 'index'));
            } else
            {
                $this->Session->setFlash('Error al eliminar');
                $this->redirect(array('action' => 'index'));
            }
        }
    }

}
